home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 016a / gofer221.zip / CONNECT.H < prev    next >
C/C++ Source or Header  |  1991-11-20  |  7KB  |  153 lines

  1. /* --------------------------------------------------------------------------
  2.  * connect.h:    Copyright (c) Mark P Jones 1991.   All rights reserved.
  3.  *        See goferite.h for details and conditions of use etc...
  4.  *        Gofer version 2.21 November 1991
  5.  *
  6.  *        Last updated 11/11/91 mpj
  7.  *
  8.  * Connections between components of the Gofer system
  9.  * ------------------------------------------------------------------------*/
  10.  
  11. /* --------------------------------------------------------------------------
  12.  * Standard data:
  13.  * ------------------------------------------------------------------------*/
  14.  
  15. extern Name  nameFalse,   nameTrue;    /* primitive constructor functions */
  16. extern Name  nameNil,     nameCons;
  17. extern Name  nameFatbar,  nameFail;    /* primitives reqd for translation */
  18. extern Name  nameIf,      nameSel;
  19. extern Name  nameMinus,      nameDivide;
  20. extern Name  nameUndefMem;         /* undefined member primitive       */
  21. extern Name  nameError;            /* for runtime error messages       */
  22. extern Name  nameAnd,      nameOr;    /* for optimisation of && and ||   */
  23.  
  24. extern Name  nameNePrint, namePrint;    /* primitives reqd for printing    */
  25.  
  26. extern Text  textPlus,    textMult;    /* used to recognise n+k/c*n pats  */
  27.  
  28. extern Type  typeString;        /* String  == [Char]           */
  29. extern Type  typeDialogue;        /* Dialogue== [Response]->[Request]*/
  30.  
  31. extern Cell  *CStackBase;        /* pointer to base of C stack       */
  32.  
  33. extern List  dataDefns;            /* list of data type definitions   */
  34. extern List  synonymDefns;        /* list of synonym definitions     */
  35. extern List  valDefns;            /* list of value definitions       */
  36. extern List  opDefns;            /* list of operator definitions    */
  37. extern List  classDefns;        /* list of class definitions       */
  38. extern List  instDefns;            /* list of instance definitions    */
  39. extern List  overDefns;            /* list of overloaded member defns */
  40. extern Cell  inputExpr;            /* evaluator input expression      */
  41. extern Addr  inputCode;            /* Code for compiled input expr    */
  42.  
  43. extern Int   whnfArgs;            /* number of args of term in whnf  */
  44. extern Cell  whnfHead;            /* head of term in whnf            */
  45. extern Int   whnfInt;            /* integer value of term in whnf   */
  46. extern Float whnfFloat;            /* float value of term in whnf       */
  47. extern Long  numReductions;        /* number of reductions used       */
  48. extern Long  numCells;            /* number of cells allocated       */
  49. extern Int   numberGcs;            /* number of garbage collections   */
  50.  
  51. extern Bool  gcMessages;        /* TRUE => print GC messages       */
  52. extern Bool  literateScripts;        /* Set to TRUE for lit scripts     */
  53. extern Bool  literateErrors;        /* report errors in lit. scripts   */
  54. extern Bool  useConformality;        /* TRUE => check patbind conform'ty*/
  55. extern Bool  anyEvidence;        /* TRUE => don't search for best ev*/
  56. extern Bool  coerceNumLiterals;        /* TRUE => insert fromInteger calls*/
  57.                     /*       etc for numeric literals*/
  58. extern Bool  andorOptimise;        /* TRUE => optimise uses of &&, || */
  59. extern Bool  showDicts;            /* TRUE => show dictionary params  */
  60.                     /*       in output expressions   */
  61. extern Bool  catchAmbigs;        /* TRUE => functions with ambig.   */
  62.                     /*       types produce error       */
  63. extern Bool  failOnError;        /* TRUE => error produces immediate*/
  64.                     /*       termination           */
  65.  
  66. extern Int   maxEvidLevel;        /* maximum no of selects in evid   */
  67. extern Bool  silentEvFail;        /* TRUE => keep quiet if maxEvidLev*/
  68.                     /*        is exceeded.           */
  69.  
  70. /* --------------------------------------------------------------------------
  71.  * Function prototypes etc...
  72.  * ------------------------------------------------------------------------*/
  73.  
  74. extern Void   everybody        Args((Int));
  75.  
  76. #define RESET   1        /* reset subsystem                         */
  77. #define MARK    2        /* mark parts of graph in use by subsystem */
  78. #define INSTALL 3        /* install subsystem (executed once only)  */
  79. #define EXIT    4        /* Take action immediately before exit()   */
  80. #define BREAK   5        /* Take action after program break       */
  81.  
  82. typedef long   Target;
  83. extern  Void   setGoal          Args((String, Target));
  84. extern  Void   soFar            Args((Target));
  85. extern  Void   done             Args((Void));
  86. extern  Bool   stringMatch    Args((String,String));
  87. extern  String fromEnv        Args((String,String));
  88.  
  89. extern  Void   storage          Args((Int));
  90. extern  Void   setLastExpr    Args((Cell));
  91. extern  Cell   getLastExpr    Args((Void));
  92. extern    List   addNamesMatching Args((String,List));
  93.  
  94. extern  Void   input            Args((Int));
  95. extern  Void   consoleInput     Args((Void));
  96. extern  Void   projInput    Args((String));
  97. extern  Void   parseScript      Args((String,Long));
  98. extern  Void   parseExp         Args((Void));
  99. extern  String readFilename     Args((Void));
  100. extern  String readLine        Args((Void));
  101. extern  Syntax defaultSyntax    Args((Text));
  102. extern  String unlexChar        Args((Char,Char));
  103.  
  104. extern  Void   staticAnalysis    Args((Int));
  105. extern  Void   newTypeDefn    Args((Int,Cell,Cell,Bool));
  106. extern  Bool   isAmbiguous    Args((Type));
  107. extern  Void   ambigError    Args((Int,String,Cell,Type));
  108. extern  Void   classDefn    Args((Int,Cell,Cell));
  109. extern  Void   instDefn        Args((Int,Cell,Cell));
  110. extern  Void   primDefn        Args((Int,List,Cell));
  111. extern  Void   checkExp        Args((Void));
  112. extern  Void   checkDefns    Args((Void));
  113.  
  114. extern  Void   typeChecker    Args((Int));
  115. extern  Type   typeCheckExp    Args((Void));
  116. extern  Void   typeCheckDefns    Args((Void));
  117. extern  Cell   instsOverlap    Args((Inst,Inst));
  118. extern  Cell   rhsExpr        Args((Cell));
  119. extern  Int    rhsLine        Args((Cell));
  120. extern  Bool   typeMatches    Args((Type,Type));
  121.  
  122. extern  Void   compiler         Args((Cell));
  123. extern  Void   compileDefns     Args((Void));
  124. extern  Void   compileExp       Args((Void));
  125. extern  Int    discrArity       Args((Cell));
  126.  
  127. extern  Void   machine          Args((Int));
  128. extern  Addr   codeGen          Args((Name,Int,Cell));
  129. extern  Void   unwind           Args((Cell));
  130. extern  Void   eval             Args((Cell));
  131. extern  Cell   evalWithNoError  Args((Cell));
  132. extern  Void   evalFails        Args((StackPtr));
  133. extern  Cell   graphForExp    Args((Void));
  134.  
  135. extern  Void   builtIn          Args((Int));
  136. extern  Void   abandon        Args((String,Cell));
  137. extern  Cell   outputString    Args((FILE *,Cell,Bool));
  138. extern  Void   dialogue        Args((Cell));
  139. extern  Cell   consChar        Args((Char));
  140.  
  141. extern  Void   machdep          Args((Int));
  142. extern  Int    shellEsc        Args((String));
  143. extern  Int    getTerminalWidth Args((Void));
  144. extern  Void   normalTerminal    Args((Void));
  145. extern  Void   noechoTerminal    Args((Void));
  146. extern  Int    readTerminalChar Args((Void));
  147. extern  Void   gcStarted    Args((Void));
  148. extern  Void   gcScanning    Args((Void));
  149. extern  Void   gcRecovered    Args((Int));
  150. extern  Void   gcCStack        Args((Void));
  151.  
  152. /*-------------------------------------------------------------------------*/
  153.